home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Celestin Apprentice 5
/
Apprentice-Release5.iso
/
Source Code
/
Libraries
/
DCLAP 6d
/
dclap6d
/
network
/
nsclilib
/
ni_defin.h
< prev
next >
Wrap
Text File
|
1996-07-05
|
16KB
|
374 lines
/*
* ===========================================================================
*
* PUBLIC DOMAIN NOTICE
* National Center for Biotechnology Information
*
* This software/database is a "United States Government Work" under the
* terms of the United States Copyright Act. It was written as part of
* the author's official duties as a United States Government employee and
* thus cannot be copyrighted. This software/database is freely available
* to the public for use. The National Library of Medicine and the U.S.
* Government have not placed any restriction on its use or reproduction.
*
* Although all reasonable efforts have been taken to ensure the accuracy
* and reliability of the software and data, the NLM and the U.S.
* Government do not and cannot warrant the performance or results that
* may be obtained by using this software or data. The NLM and the U.S.
* Government disclaim all warranties, express or implied, including
* warranties of performance, merchantability or fitness for any particular
* purpose.
*
* Please cite the author in any work or product based on this material.
*
* ===========================================================================
*
* File Name: ni_defin.h
*
* Author: Beatty, Gish
*
* Version Creation Date: 1/1/92
*
* $Revision: 4.0 $
*
* File Description:
*
*
* Modifications:
* --------------------------------------------------------------------------
* Date Name Description of modification
* ------- ---------- -----------------------------------------------------
* 5/12/92 Epstein Converted tabs to spaces
* 5/06/92 Epstein Added conditionally-compiled option for use with the
* "purify" tool
* 01-21-94 Schuler Added NETP_INET_MACTCP symbol
*
* ==========================================================================
*
*
* RCS Modification History:
* $Log: ni_defin.h,v $
* Revision 4.0 1995/07/26 13:56:32 ostell
* force revision to 4.0
*
* Revision 1.24 1995/05/17 17:51:56 epstein
* add RCS log revision history
*
*/
#ifndef _NI_DEFIN_
#define _NI_DEFIN_
#define STDIN 0
#define STDOUT 1
#define STDERR STDOUT + 1
/* if the "purify" tool is in use, it will seize the file descriptor which */
/* we had wanted; this is O.K., but the difference must be taken into account */
/* here */
#ifndef _PURIFY
#define STDPIPE STDERR + 1
#else
#define STDPIPE STDERR + 2
#endif
#define NI_Handle MHandle /* for API use */
#define NI_HandPtr MHandPtr /* for API use */
#define NI_Request Request /* for API use */
#define NI_ReqPtr ReqPtr /* for API use */
#define ERRTEXT_BUFSIZ 512 /* size of supplied error text buffer */
#define HOSTNAME_SIZ 64
#define INETADDR_SIZ 16 /* of the form 255.255.255.255 */
#define SVC_HOST_SIZ 64 /* size of addr or name of host */
#define SVC_NAME_SIZ 64 /* size of name of service */
#define RES_NAME_SIZ 64 /* size of name of resource */
#define RESTYP_NAME_SIZ 64 /* size of type of resource */
#define USERNAME_SIZ 64 /* kerberos principle */
#define GROUPNAME_SIZ 64 /* kerberos instance */
#define DOMAINNAME_SIZ 64 /* kerberos realm */
#define PASSWORD_SIZ 32 /* must be encrypted */
#define MATCHES_ANY_TYPE "*" /* string which matches any resource type */
#define NI_LAST_RESERVED_PORT 1024 /* ports above this MAY be legal */
#define NI_DEFAULT_TIMEOUT 60
#define NI_SELECT_TIMEOUT 60
#define NI_READ_TIMEOUT NI_DEFAULT_TIMEOUT
#define NI_WRITE_TIMEOUT NI_DEFAULT_TIMEOUT
#define PIPE_TOKEN "\003"
#define PIPE_MSG_FMT "%d\003%s\003"
#define READ_AIP raip
#define WRITE_AIP waip
#define NI_DEFAULT_DOMAIN "ncbi.nlm.nih.gov" /* default domain */
#define NI_DEFAULT_HOST "dispatcher" /* default host for dispatcher */
#define NI_DEFAULT_SERVICE "disp_port" /* default name of service (port) */
#define NI_DFLT_SVC_PORT 5557 /* default port for service */
#define NI_CLIENT_PORT_LO_NAME "ncbi_begin" /* beginning of client port range */
#define NI_DFLT_CLILO_PORT 5601 /* default beginning of client port range */
#define NI_CLIENT_PORT_HI_NAME "ncbi_end" /* end of client port range */
#define NI_DFLT_CLIHI_PORT 32767 /* default end of client port range */
/* instrumentation is enabled by default */
#ifdef NI_NOSOCK_LOGGING
#define LOG_SOCKET(x,y)
#else
#define LOG_SOCKET(x,y) NI_LogSocket(x,y,__FILE__,__LINE__)
#endif /* NI_NOSOCK_LOGGING */
#ifdef NETP_INET_WSOCK
/* ** the following was extracted from <winsock.h> ** */
/*
* Windows Sockets errors redefined as regular Berkeley error constants.
* These are commented out in Windows NT to avoid conflicts with errno.h.
* Use the WSA constants instead.
*/
#define EWOULDBLOCK WSAEWOULDBLOCK
#define EINPROGRESS WSAEINPROGRESS
#define EALREADY WSAEALREADY
#define ENOTSOCK WSAENOTSOCK
#define EDESTADDRREQ WSAEDESTADDRREQ
#define EMSGSIZE WSAEMSGSIZE
#define EPROTOTYPE WSAEPROTOTYPE
#define ENOPROTOOPT WSAENOPROTOOPT
#define EPROTONOSUPPORT WSAEPROTONOSUPPORT
#define ESOCKTNOSUPPORT WSAESOCKTNOSUPPORT
#define EOPNOTSUPP WSAEOPNOTSUPP
#define EPFNOSUPPORT WSAEPFNOSUPPORT
#define EAFNOSUPPORT WSAEAFNOSUPPORT
#define EADDRINUSE WSAEADDRINUSE
#define EADDRNOTAVAIL WSAEADDRNOTAVAIL
#define ENETDOWN WSAENETDOWN
#define ENETUNREACH WSAENETUNREACH
#define ENETRESET WSAENETRESET
#define ECONNABORTED WSAECONNABORTED
#define ECONNRESET WSAECONNRESET
#define ENOBUFS WSAENOBUFS
#define EISCONN WSAEISCONN
#define ENOTCONN WSAENOTCONN
#define ESHUTDOWN WSAESHUTDOWN
#define ETOOMANYREFS WSAETOOMANYREFS
#define ETIMEDOUT WSAETIMEDOUT
#define ECONNREFUSED WSAECONNREFUSED
#define ELOOP WSAELOOP
//#define ENAMETOOLONG WSAENAMETOOLONG
#define EHOSTDOWN WSAEHOSTDOWN
#define EHOSTUNREACH WSAEHOSTUNREACH
//#define ENOTEMPTY WSAENOTEMPTY
#define EPROCLIM WSAEPROCLIM
#define EUSERS WSAEUSERS
#define EDQUOT WSAEDQUOT
#define ESTALE WSAESTALE
#define EREMOTE WSAEREMOTE
#endif /* NETP_INET_WSOCK */
/* MACROS */
/* BLOCKSIG, UNBLOCKSIG, and BZERO are for dispatcher and ncbid only */
#if defined(OS_UNIX_SYSV) && !defined(PROC_MIPS)
/* for System V we cheat and use the caller's "mask" variable to store */
/* the signal; note that these macros won't work if dealing with more than */
/* one signal */
#define NI_BLOCKSIG(_sig, _mask) { _mask = _sig; sighold(_sig); }
#define NI_UNBLOCKSIG(_sig) sigrelse(_sig)
#define NI_BZERO(buf, bufsize) Nlm_MemFill(buf, 0, bufsize)
#else
#define NI_BLOCKSIG(_sig, _mask) _mask = sigblock(sigmask(_sig))
#define NI_UNBLOCKSIG(_mask) sigsetmask(_mask)
#define NI_BZERO(buf, bufsize) bzero(buf, bufsize)
#endif
#ifdef NETP_INET_NEWT
#define NI_READSOCKET(rsok, rbuf, rlen) recv(rsok, rbuf, rlen, 0)
#define NI_WRITESOCKET(wsok, wbuf, wlen) send(wsok, wbuf, wlen, 0)
#define NI_CLOSESOCKET(sok) close_socket(sok)
#define NI_select(s, r, w, x, t) NI_poll_select(s, r, w, x, t)
#define NI_SETBLOCKING(fd) ioctl(fd, FIONBIO, "1")
#define NI_SETNONBLOCKING(fd) ioctl(fd, FIONBIO, "0")
#endif /* NETP_INET_NEWT */
#ifdef NETP_INET_PCNFS
#define NI_READSOCKET(rsok, rbuf, rlen) recv(rsok, rbuf, rlen, 0)
#define NI_WRITESOCKET(wsok, wbuf, wlen) send(wsok, wbuf, wlen, 0)
#define NI_CLOSESOCKET(sok) close(sok)
#define NI_select(s, r, w, x, t) select(s, r, w, x, t)
#define NI_SETBLOCKING(fd) NI_SetBlocking (fd)
#define NI_SETNONBLOCKING(fd) NI_SetNonBlocking (fd)
#define NI_BLOCK_WITH_FUNCTION
#endif /* NETP_INET_PCNFS */
/* Windows Sockets */
#ifdef NETP_INET_WSOCK
#define NI_READSOCKET(rsok, rbuf, rlen) recv(rsok, rbuf, rlen, 0)
#define NI_WRITESOCKET(wsok, wbuf, wlen) send(wsok, wbuf, wlen, 0)
#define NI_CLOSESOCKET(sok) closesocket(sok)
#define NI_select(s, r, w, x, t) NI_poll_select(s, r, w, x, t)
#define NI_SETBLOCKING(fd) NI_SetBlocking (fd)
#define NI_SETNONBLOCKING(fd) NI_SetNonBlocking (fd)
#define errno WSAGetLastError()
#define _INVALID_SOCKET_DEFINED_
#define NI_BLOCK_WITH_FUNCTION
#define SOCK_INDEX_ERRNO ((errno <= WSABASEERR || errno >= sys_nerr + WSABASEERR) ? 0 : (errno - WSABASEERR))
#endif /* NETP_INET_WINSOCK */
/* TGV's Multinet TCP/IP suite for OpenVMS */
#ifdef NETP_INET_TGV
#define NI_READSOCKET(rsok, rbuf, rlen) recv(rsok, rbuf, rlen, 0)
#define NI_WRITESOCKET(wsok, wbuf, wlen) send(wsok, wbuf, wlen, 0)
#define NI_CLOSESOCKET(sok) socket_close(sok)
#define NI_select(s, r, w, x, t) select(s, r, w, x, t)
#define NI_SETBLOCKING(fd) NI_SetBlocking (fd)
#define NI_SETNONBLOCKING(fd) NI_SetNonBlocking (fd)
#define NI_BLOCK_WITH_FUNCTION
#define SOCK_ERRNO socket_errno
#endif
/* Wollongong TCP/IP suite for OpenVMS */
#ifdef NETP_INET_TWG
#define NI_READSOCKET(rsok, rbuf, rlen) recv(rsok, rbuf, rlen, 0)
#define NI_WRITESOCKET(wsok, wbuf, wlen) send(wsok, wbuf, wlen, 0)
#define NI_CLOSESOCKET(sok) netclose(sok)
#define NI_select(s, r, w, x, t) select(s, r, w, x, t)
#define NI_SETBLOCKING(fd) NI_SetBlocking (fd)
#define NI_SETNONBLOCKING(fd) NI_SetNonBlocking (fd)
#define NI_BLOCK_WITH_FUNCTION
/* from UCX */
#define FD_SETSIZE 32
#define fd_set int
#define FD_SET(n, p) *(p) |= 1 << (n);
#define FD_CLR(n,p) *(p) &= ~(1 << (n));
#define FD_ISSET(n,p) ((*p) & (1 << (n)))
#define FD_ZERO(p) *(p) = 0;
#endif
/* Wollongong PathWay API 1.0 suite for OpenVMS */
#ifdef NETP_INET_WPW
#define NI_READSOCKET(rsok, rbuf, rlen) recv(rsok, rbuf, rlen, 0)
#define NI_WRITESOCKET(wsok, wbuf, wlen) send(wsok, wbuf, wlen, 0)
#define NI_CLOSESOCKET(sok) netclose(sok)
#define NI_select(s, r, w, x, t) select(s, r, w, x, t)
#define NI_SETBLOCKING(fd) NI_SetBlocking (fd)
#define NI_SETNONBLOCKING(fd) NI_SetNonBlocking (fd)
#define NI_BLOCK_WITH_FUNCTION
#endif
/* DEC TCP/IP for OpenVMS (UCX) */
#ifdef NETP_INET_UCX
#define NI_READSOCKET(rsok, rbuf, rlen) recv(rsok, rbuf, rlen, 0)
#define NI_WRITESOCKET(wsok, wbuf, wlen) send(wsok, wbuf, wlen, 0)
#define NI_CLOSESOCKET(sok) close(sok)
#define NI_select(s, r, w, x, t) select(s, r, w, x, t)
#define NI_SETBLOCKING(fd) NI_SetBlocking (fd)
#define NI_SETNONBLOCKING(fd) NI_SetNonBlocking (fd)
#define NI_BLOCK_WITH_FUNCTION
#define FD_SETSIZE 32
#define fd_set int
#define FD_SET(n, p) *(p) |= 1 << (n);
#define FD_CLR(n,p) *(p) &= ~(1 << (n));
#define FD_ISSET(n,p) ((*p) & (1 << (n)))
#define FD_ZERO(p) *(p) = 0;
#endif
/* Macintosh */
#if defined(OS_MAC) && !defined(NETP_defined)
#define NETP_INET_MACTCP
#endif
#ifdef NETP_INET_MACTCP
#define NI_READSOCKET(rsok, rbuf, rlen) read(rsok, rbuf, rlen)
#define NI_WRITESOCKET(wsok, wbuf, wlen) write(wsok, wbuf, wlen)
#define NI_CLOSESOCKET(sok) close(sok)
#define NI_select(s, r, w, x, t) select(s, r, w, x, t)
#define NI_SETBLOCKING(fd) fcntl(fd, F_SETFL, fcntl(fd, F_GETFL, 0) & ~O_NDELAY) /* set blocking */
#define NI_SETNONBLOCKING(fd) fcntl(fd, F_SETFL, fcntl(fd, F_GETFL, 0) | O_NDELAY) /* set nonblocking */
/* The errno_long mechanism is used for interoperability between the */
/* network services library and the NCSA socket library, which need not have */
/* been compiled with the same integer size (2 byte vs. 4 byte) */
#define SOCK_ERRNO errno_long
#endif /* NETP_INET_MACTCP */
#ifndef NI_READSOCKET /* for now, fall back on UNIX as default */
#define NI_READSOCKET(rsok, rbuf, rlen) read(rsok, rbuf, rlen)
#define NI_WRITESOCKET(wsok, wbuf, wlen) write(wsok, wbuf, wlen)
#define NI_CLOSESOCKET(sok) close(sok)
#define NI_select(s, r, w, x, t) select(s, r, w, x, t)
#ifdef OS_UNIX_BSD
#define NI_SETBLOCKING(fd) fcntl(fd, F_SETFL, fcntl(fd, F_GETFL, 0) & ~FNDELAY) /* set blocking */
#define NI_SETNONBLOCKING(fd) fcntl(fd, F_SETFL, fcntl(fd, F_GETFL, 0) | FNDELAY) /* set nonblocking */
#else
#define NI_SETBLOCKING(fd) fcntl(fd, F_SETFL, fcntl(fd, F_GETFL, 0) & ~O_NDELAY) /* set blocking */
#define NI_SETNONBLOCKING(fd) fcntl(fd, F_SETFL, fcntl(fd, F_GETFL, 0) | O_NDELAY) /* set nonblocking */
#endif /* OS_UNIX_BSD */
#endif /* NI_READSOCKET */
/* MSDOS */
#ifdef COMP_MSC
#ifndef NETP_INET_MACTCP
#ifdef FD_SETSIZE
#undef FD_SETSIZE
#endif
#define FD_SETSIZE 32
#include <io.h>
#ifndef NETP_INET_NEWT
#ifndef NETP_INET_PCNFS
#ifndef NETP_INET_WSOCK
/* copied from Sun version of this file 6-11-91 and modified */
#define NFDBITS 32
#define FD_SET(n, p) ((p)->fds_bits[(n)/NFDBITS] |= (1 << ((n) % NFDBITS)))
#define FD_CLR(n, p) ((p)->fds_bits[(n)/NFDBITS] &= ~(1 << ((n) % NFDBITS)))
#define FD_ISSET(n, p) ((p)->fds_bits[(n)/NFDBITS] & (1 << ((n) % NFDBITS)))
#define FD_ZERO(p) MemFill((char *)(p), '\0', sizeof(*(p)))
#endif
#endif
#endif
#endif /* NETP_INET_MACTCP */
#endif /* COMP_MSC */
#ifndef SOCK_ERRNO
#define SOCK_ERRNO errno
#endif /* SOCK_ERRNO */
#ifndef SOCK_INDEX_ERRNO
#define SOCK_INDEX_ERRNO SOCK_ERRNO
#endif /* SOCK_INDEX_ERRNO */
#ifndef _INVALID_SOCKET_DEFINED_
#define INVALID_SOCKET -1
#endif /* INVALID_SOCKET */
#ifdef NETP_SOCKS
#define NI_ACCEPT(sok,addr,addrlen) Raccept(sok,addr,addrlen)
#define NI_BIND(sok,name,namelen,bindaddr) Rbind(sok,name,namelen,bindaddr)
#define NI_CONNECT(sok,name,namelen) Rconnect(sok,name,namelen)
#define NI_GETSOCKNAME(sok,name,namelen) Rgetsockname(sok,name,namelen)
#define NI_LISTEN(sok,backlog) Rlisten(sok,backlog)
#else
#define NI_ACCEPT(sok,addr,addrlen) accept(sok,addr,addrlen)
#define NI_BIND(sok,name,namelen,bindaddr) bind(sok,name,namelen)
#define NI_CONNECT(sok,name,namelen) connect(sok,name,namelen)
#define NI_GETSOCKNAME(sok,name,namelen) getsockname(sok,name,namelen)
#define NI_LISTEN(sok,backlog) listen(sok,backlog)
#endif
#endif /* _NI_DEFIN_ */